There have been significant developments in the area of policy-based computing. The development of policy-based computing is expected to simplify and reduce the cost of system administration, while increasing the quality of service. Policy-based computing allows an administrator to specify a set of rules to guide the operations of a computer system. The techniques of policy-based computing are especially applicable to the area of autonomic computing. Some examples of policies include a policy that would re-allocate storage and notify the user when specific performance requirements are not met; and a policy that specifies a specific type of service be assigned to a user with specific attributes, e.g. a user associated with a specific company or a specific IP address.
Currently existing efforts in this area include “Policy-Based Networking: Architecture and Algorithms” (New Riders publishing, 2001) by Dinesh C. Verma, which discusses the application of policy-based computing to networking; and “A Framework for Policy-Based Storage Management” by Murthy Devarakonda, Jack Gelb, Avi Saha, and Jimmy Strickland (Proceedings of Policy 2002 Intl. Workshop on Policies for Distributed Systems and Networks, Monterrey, Calif., June 2002), which discusses policy-based storage management. Also, the document available from the Distributed Management Task Force (DMTF), entitled “IETF/DMTF policy framework”, http://www.dmtf.org/download/presentations/junedev01/track/0613-01_policy.pdf, represents an attempt to develop standards in policy-based computing.
In currently-existing approaches that are known to the inventors the policy attributes are static, which makes it necessary to change the policy-processing code whenever there is a change in the policy requirements. For example, a designer of a storage system may decide that most users would prefer to measure the quality of service in terms of throughput and response time. Such a system can allow the user to define a quality of service policy that requests a storage re-allocation whenever the throughput falls below some desirable number. The storage system may have much more information available, but the user is not able to use all of the available metrics in the policies. Yet, it may be the case that in some enterprise it is desirable to define a policy that would trigger storage re-allocation whenever the transfer rate and some combination of other values, e.g., average of the transfer rate and the throughput, do not meet some criteria. While all of these various metrics may be available via low-level system commands, they are not currently available to be used in policies, either because the system (policy) designer did not initially consider them to be important, or because the policy system was migrated to a different storage system that has different characteristics.
The ability to dynamically introduce the new attributes could be especially important in the area of electronic business (e-business) on demand, or in autonomic computing where it would be desirable to employ standard policies for different system configurations. For example, a database system may use the storage provided by any one of several different data storage systems that each provide different metrics.
Another example of a policy where the dynamic introduction of attributes is desirable is the assignment of a specific class of service or priority, or one that allocates resources based on specific requester characteristics. For example, a system may allow the specification of policies that assign a highest priority to requests that originate from a company A. At some future time it may become necessary to add additional parameters to such requests: for example, to vary the priority between different applications of company A as identified by requests from a programmer with a specific ID, or from different servers. Some of these “requester attributes”, such as ID and/or originating server, may not be known at the time the system is created. In this case it would clearly be advantageous to allow the addition of these attributes during system operations.
However, prior to this invention a capability to dynamically introduce attributes for a policy was not available.